package com.sincon.system.service.impl;

import java.util.List;

import cn.hutool.core.lang.UUID;
import cn.hutool.crypto.digest.MD5;
import com.sincon.common.utils.DateUtils;
import com.sincon.common.utils.SecurityUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.sincon.system.mapper.TbServerInfoMapper;
import com.sincon.system.domain.TbServerInfo;
import com.sincon.system.service.ITbServerInfoService;

/**
 * 服务器信息主Service业务层处理
 * 
 * @author LaoGao
 * @date 2024-12-23
 */
@Service
public class TbServerInfoServiceImpl implements ITbServerInfoService 
{
    @Autowired
    private TbServerInfoMapper tbServerInfoMapper;

    /**
     * 查询服务器信息主
     * 
     * @param sid 服务器信息主主键
     * @return 服务器信息主
     */
    @Override
    public TbServerInfo selectTbServerInfoBySid(Long sid)
    {
        return tbServerInfoMapper.selectTbServerInfoBySid(sid);
    }

    /**
     * 查询服务器信息主列表
     * 
     * @param tbServerInfo 服务器信息主
     * @return 服务器信息主
     */
    @Override
    public List<TbServerInfo> selectTbServerInfoList(TbServerInfo tbServerInfo)
    {

        Long userId = SecurityUtils.getUserId();
        tbServerInfo.setKeyUserId(String.valueOf(userId));
        return tbServerInfoMapper.selectTbServerInfoList(tbServerInfo);
    }

    /**
     * 新增服务器信息主
     * 
     * @param tbServerInfo 服务器信息主
     * @return 结果
     */
    @Override
    public int insertTbServerInfo(TbServerInfo tbServerInfo)
    {
        Long userId = SecurityUtils.getUserId();
        /**
         * 设置指定用户id
         */
        tbServerInfo.setKeyUserId(String.valueOf(userId));
        tbServerInfo.setCreateName(SecurityUtils.getUsername());
        tbServerInfo.setServerKey(UUID.randomUUID().toString());
        tbServerInfo.setTaskCount("0");
        return tbServerInfoMapper.insertTbServerInfo(tbServerInfo);
    }

    /**
     * 修改服务器信息主
     * 
     * @param tbServerInfo 服务器信息主
     * @return 结果
     */
    @Override
    public int updateTbServerInfo(TbServerInfo tbServerInfo)
    {
        Long userId = SecurityUtils.getUserId();
        /**
         * 设置指定用户id
         */
        tbServerInfo.setKeyUserId(String.valueOf(userId));
        return tbServerInfoMapper.updateTbServerInfo(tbServerInfo);
    }

    /**
     * 批量删除服务器信息主
     * 
     * @param sids 需要删除的服务器信息主主键
     * @return 结果
     */
    @Override
    public int deleteTbServerInfoBySids(Long[] sids)
    {
        return tbServerInfoMapper.deleteTbServerInfoBySids(sids);
    }

    /**
     * 删除服务器信息主信息
     * 
     * @param sid 服务器信息主主键
     * @return 结果
     */
    @Override
    public int deleteTbServerInfoBySid(Long sid)
    {
        return tbServerInfoMapper.deleteTbServerInfoBySid(sid);
    }
}
